Internet Protocol (IP) networks such as the Internet have a maximum packet size that can be transmitted between a sending node and a receiving node in the network. This maximum packet size is referred to as the maximum transfer unit (MTU). If a packet size exceeds the MTU for a network then the packet has to be fragmented into multiple packets, each of a size that does not exceed the MTU. The multiple packets are then transmitted by the sending node to the receiving node where they are reassembled to recover the original packet.
Fragmentation is a big problem, especially with overlay networks becoming prominent, because it forces a receiving Customer-Premises Equipment (CPE) device to either do reassembly, so that inner packet can be forwarded, or to drop the inner packet if reassembly is not supported. Neither of these two options is attractive.
Fragmentation is an issue in general because the MTU is configured statically, and there is no way for two end nodes to negotiate the data packet size over IP networks. The problem is exacerbated by the presence of stateless devices along a network path, which are not capable of supporting the Internet Control Message Protocol (ICMP) packet too big/fragmentation is needed message in respect of packets sent with a Don't Fragment (DF) flag set. On the flip side with devices capable of sending ICMP packet too big messages, there is a potential of these messages flooding the sending CPE. With the Transmission Control Protocol (TCP) there is an option to exchange Maximum Segment Size (MSS). Thus one can for, e.g., adjust the MSS in TCP Syn packets, but even then, the best value is not known, without knowing the maximum MTU supported on the entire path. Moreover, for the User Datagram (UDP) protocol, the latter option is not available.